import { getStorage } from '@/utils/storage';
import { goToLogin } from '@/utils/common';
import { reqGetById } from '@/api/user';
import { reqIndexBannerList } from '@/api/banner';

Page({
  data: {
    // 用户信息下方轮播图
    swiperList: [],
    // 用户信息
    userInfo: {
      avatar: '', // 头像
      username: '', // 用户名
      point: 0,  // 积分
      coupon: 0, // 卡券数量
    },
    // 首页背景图
    backgroundImage: 'https://minio.zhangyizhou.xyz/file/management/index.jpg',
    // 判断登录状态 默认为没有登录
    isLogin: false,
    // 二维码的弹框
    visible: false
  },

  // 进入页面的时候 加载轮播图
  onLoad() {
    this.getSwiperList();
  },

  // 展示页面的时候 加载用户信息
  onShow() {
    this.getUserInfo();
  },

  // 获取用户信息
  async getUserInfo() {
    const token = getStorage('token') || ''
    if (token) {
      const { data } = await reqGetById(token)
      this.setData({
        isLogin: true,
        'userInfo.avatar': data.avatar,
        'userInfo.username': data.nickname || ''
      })
    }
  },

  // 获取首页轮播图数据
  async getSwiperList() {
    const res = await reqIndexBannerList()
    this.setData({
      swiperList: res.data.map(item => item.url),
    })
  },

  // 点击登录 或者 编辑信息
  async handleLogin() {
    // 点击登录
    await goToLogin()
    // 刷新用户信息
    await this.getUserInfo()
  },

  // 是否展示二维码
  handleCode() {
    this.setData({ visible: true })
  },

  // 分享小程序
  onShareAppMessage(options) {
    return {
      title: '小张餐厅'
    };
  }
})